/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.smart.hawk.model.caller;

import co.com.smart.connection.model.manager.JDBCResourceManager;
import co.com.smart.hawk.dto.TerceroDTO;
import co.com.smart.hawk.dto.UsuarioDTO;
import co.com.smart.hawk.utilities.HawkSessionMgr;
import java.sql.*;

/**
 * Class caller para manejos de terceros
 * @author Keila Hoyos Perez
 * @Fecha 28/01/2017 
 */
public class TercerosCaller extends JDBCResourceManager{
    
    public TercerosCaller () {
        super();
     }
    
    public TerceroDTO GrabarTerceros (TerceroDTO terceros) throws SQLException{
        TerceroDTO returnTercero = new TerceroDTO();
        Connection conn = null;
        CallableStatement call = null;
         UsuarioDTO user = (UsuarioDTO)HawkSessionMgr.getInstance().getSession("USER_SESSION");
         try {
            
            conn = getConnection();
            call = conn.prepareCall("{call GrabarTerceros(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            call.setBigDecimal(1, terceros.getSctercero());
            call.setString(2, terceros.getCoidentificacion());
            call.setString(3, terceros.getDsprimernombre());
            call.setString(4, terceros.getDssegundonombre());
            call.setString(5, terceros.getDsprimerapell());
            call.setString(6, terceros.getDssegundoapell());
            call.setString(7, terceros.getDsrazonsocial());
            call.setString(8, terceros.getDsnombrecont());
            call.setString(9, terceros.getCotelefono());
            call.setString(10, terceros.getDsextension());
            call.setString(11, terceros.getDscelular());
            call.setString(12, terceros.getDsemail());
            call.setString(13, terceros.getDsdireccion());
            call.setBigDecimal(14, terceros.getTipodocumento().getScdatmaestro());
            call.setBigDecimal(15, terceros.getCiudad().getScciudad());
            call.setBigDecimal(16, terceros.getTipotercero().getScdatmaestro());
            call.setString(17, terceros.getFhnacimiento());
            call.setString(18, user.getCocodigo());
            call.registerOutParameter(19, java.sql.Types.VARCHAR);
            call.registerOutParameter(20, java.sql.Types.VARCHAR);
            call.executeUpdate();
            returnTercero.setDsmensaje(call.getString(19));
            returnTercero.setCodigo(call.getString(20));
            
        } catch (SQLException e) {
            throw  e;
        }finally{
            closeResources(conn, call);
        }
        return returnTercero;
    }
    
    public TerceroDTO consultarTerceros (TerceroDTO terceros) throws SQLException{
         TerceroDTO returnTercero = new TerceroDTO();
         Connection conn = null;
         PreparedStatement pst = null;
         ResultSet rs = null;
         try {      
            conn = getConnection();
            pst = conn.prepareCall("{call consultarTercero(?,?)}");
            pst.setBigDecimal(1, terceros.getTipodocumento().getScdatmaestro());
            pst.setString(2, terceros.getCoidentificacion());
            rs = pst.executeQuery();
            if (rs!=null){
                while(rs.next()){
                    returnTercero.setSctercero(rs.getBigDecimal("sm_sctercero"));
                    returnTercero.setNombrecontatenado(rs.getString("sm_dsprimernombre")+" "+rs.getString("sm_dssegundonombre")+" "+rs.getString("sm_dsprimerapell")+" "+rs.getString("sm_dssegundoapell"));
                }
            }
        } catch (SQLException e) {
            throw  e;
        }finally{
            closeResources(conn, pst);
        }
        return returnTercero;
    }    
}
